import Vue from 'vue'
import App from './App.vue'


Vue.config.productionTip = false


// 全局组件
import Header from '@/components/header'
import Footer from '@/components/footer'
import TypeNav from '@/components/typeNav'

import Pagination from '@/components/pagination'

Vue.component(Header.name,Header)
Vue.component(Footer.name,Footer)
Vue.component(TypeNav.name,TypeNav)
Vue.component(Pagination.name,Pagination)



// 注册路由功能
import router  from './router'

// 注册仓库
import store  from './store'

// 发送请求 获取商品分类的数据
store.dispatch('getCategory')


//引入mockServe文件,让咱们模拟接口跑起来
import "@/mock/mockServe.js";


//按需引入
import { Button, Row, Col, MessageBox,Message} from 'element-ui';
//element-ui大多数组件，注册为全局组件Vue.component|Vue.use
Vue.use(Button);
Vue.use(Row);
Vue.use(Col);
//按需引入写法不同的:MessageBox、Message、Loading、Notification
Vue.prototype.$msgbox = MessageBox;
//消息提示框
Vue.prototype.$alert = MessageBox.alert;

Vue.prototype.$message = Message;


// 将请求函数引入进来
import * as http  from '@/api'


//图片懒加载插件
import VueLazyload from 'vue-lazyload'

//引入图片模块
import loading from '@/assets/loading.gif';
import error from '@/assets/1.png';
//使用插件
Vue.use(VueLazyload, {
  //加载图片的设置
  loading: loading,
  //服务器返回数据【图片有没问题：至少兜底的图片】
  error:error
})

new Vue({

  // 添加路由功能；全部VC实例身上都会拥有两个属性，$router/$route
  router,
  // 全部VC实例身上都会拥有$store属性
  store,
  beforeCreate(){
    Vue.prototype.$bus = this;

    Vue.prototype.$http = http;
  },
  render: h => h(App),
}).$mount('#app')
